package com.gmrz.webauthn.common;

import java.util.HashMap;
import java.util.Map;

public class LocationConstants
{
    public static final Map<String, String> COUNTRY_CODE_NAME_MAP = new HashMap();

    static
    {
        COUNTRY_CODE_NAME_MAP.put("AF", "Afghanistan");
        COUNTRY_CODE_NAME_MAP.put("AX", "Aland Islands");
        COUNTRY_CODE_NAME_MAP.put("AL", "Albania");
        COUNTRY_CODE_NAME_MAP.put("DZ", "Algeria");
        COUNTRY_CODE_NAME_MAP.put("AS", "American Samoa");
        COUNTRY_CODE_NAME_MAP.put("AD", "Andorra");
        COUNTRY_CODE_NAME_MAP.put("AO", "Angola");
        COUNTRY_CODE_NAME_MAP.put("AI", "Anguilla");
        COUNTRY_CODE_NAME_MAP.put("AQ", "Antarctica");
        COUNTRY_CODE_NAME_MAP.put("AG", "Antigua and Barbuda");
        COUNTRY_CODE_NAME_MAP.put("AR", "Argentina");
        COUNTRY_CODE_NAME_MAP.put("AM", "Armenia");
        COUNTRY_CODE_NAME_MAP.put("AW", "Aruba");
        COUNTRY_CODE_NAME_MAP.put("AU", "Australia");
        COUNTRY_CODE_NAME_MAP.put("AT", "Austria");
        COUNTRY_CODE_NAME_MAP.put("AZ", "Azerbaijan");
        COUNTRY_CODE_NAME_MAP.put("BS", "Bahamas");
        COUNTRY_CODE_NAME_MAP.put("BH", "Bahrain");
        COUNTRY_CODE_NAME_MAP.put("BD", "Bangladesh");
        COUNTRY_CODE_NAME_MAP.put("BB", "Barbados");
        COUNTRY_CODE_NAME_MAP.put("BY", "Belarus");
        COUNTRY_CODE_NAME_MAP.put("BE", "Belgium");
        COUNTRY_CODE_NAME_MAP.put("BZ", "Belize");
        COUNTRY_CODE_NAME_MAP.put("BJ", "Benin");
        COUNTRY_CODE_NAME_MAP.put("BM", "Bermuda");
        COUNTRY_CODE_NAME_MAP.put("BT", "Bhutan");
        COUNTRY_CODE_NAME_MAP.put("BO", "Bolivia, Plurinational State of");
        COUNTRY_CODE_NAME_MAP.put("BQ", "Bonaire, Saint Eustatius and Saba");
        COUNTRY_CODE_NAME_MAP.put("BA", "Bosnia and Herzegovina");
        COUNTRY_CODE_NAME_MAP.put("BW", "Botswana");
        COUNTRY_CODE_NAME_MAP.put("BV", "Bouvet Island");
        COUNTRY_CODE_NAME_MAP.put("BR", "Brazil");
        COUNTRY_CODE_NAME_MAP.put("IO", "British Indian Ocean Territory");
        COUNTRY_CODE_NAME_MAP.put("BN", "Brunei Darussalam");
        COUNTRY_CODE_NAME_MAP.put("BG", "Bulgaria");
        COUNTRY_CODE_NAME_MAP.put("BF", "Burkina Faso");
        COUNTRY_CODE_NAME_MAP.put("BI", "Burundi");
        COUNTRY_CODE_NAME_MAP.put("KH", "Cambodia");
        COUNTRY_CODE_NAME_MAP.put("CM", "Cameroon");
        COUNTRY_CODE_NAME_MAP.put("CA", "Canada");
        COUNTRY_CODE_NAME_MAP.put("CV", "Cape Verde");
        COUNTRY_CODE_NAME_MAP.put("KY", "Cayman Islands");
        COUNTRY_CODE_NAME_MAP.put("CF", "Central African Republic");
        COUNTRY_CODE_NAME_MAP.put("TD", "Chad");
        COUNTRY_CODE_NAME_MAP.put("CL", "Chile");
        COUNTRY_CODE_NAME_MAP.put("CN", "China");
        COUNTRY_CODE_NAME_MAP.put("CX", "Christmas Island");
        COUNTRY_CODE_NAME_MAP.put("CC", "Cocos (Keeling) Islands");
        COUNTRY_CODE_NAME_MAP.put("CO", "Colombia");
        COUNTRY_CODE_NAME_MAP.put("KM", "Comoros");
        COUNTRY_CODE_NAME_MAP.put("CG", "Congo");
        COUNTRY_CODE_NAME_MAP.put("CD", "Congo, The Democratic Republic of the");
        COUNTRY_CODE_NAME_MAP.put("CK", "Cook Islands");
        COUNTRY_CODE_NAME_MAP.put("CR", "Costa Rica");
        COUNTRY_CODE_NAME_MAP.put("CI", "Cote d'Ivoire");
        COUNTRY_CODE_NAME_MAP.put("HR", "Croatia");
        COUNTRY_CODE_NAME_MAP.put("CU", "Cuba");
        COUNTRY_CODE_NAME_MAP.put("CW", "Curacao");
        COUNTRY_CODE_NAME_MAP.put("CY", "Cyprus");
        COUNTRY_CODE_NAME_MAP.put("CZ", "Czech Republic");
        COUNTRY_CODE_NAME_MAP.put("DK", "Denmark");
        COUNTRY_CODE_NAME_MAP.put("DJ", "Djibouti");
        COUNTRY_CODE_NAME_MAP.put("DM", "Dominica");
        COUNTRY_CODE_NAME_MAP.put("DO", "Dominican Republic");
        COUNTRY_CODE_NAME_MAP.put("EC", "Ecuador");
        COUNTRY_CODE_NAME_MAP.put("EG", "Egypt");
        COUNTRY_CODE_NAME_MAP.put("SV", "El Salvador");
        COUNTRY_CODE_NAME_MAP.put("GQ", "Equatorial Guinea");
        COUNTRY_CODE_NAME_MAP.put("ER", "Eritrea");
        COUNTRY_CODE_NAME_MAP.put("EE", "Estonia");
        COUNTRY_CODE_NAME_MAP.put("ET", "Ethiopia");
        COUNTRY_CODE_NAME_MAP.put("FK", "Falkland Islands (Malvinas)");
        COUNTRY_CODE_NAME_MAP.put("FO", "Faroe Islands");
        COUNTRY_CODE_NAME_MAP.put("FJ", "Fiji");
        COUNTRY_CODE_NAME_MAP.put("FI", "Finland");
        COUNTRY_CODE_NAME_MAP.put("FR", "France");
        COUNTRY_CODE_NAME_MAP.put("GF", "French Guiana");
        COUNTRY_CODE_NAME_MAP.put("PF", "French Polynesia");
        COUNTRY_CODE_NAME_MAP.put("TF", "French Southern Territories");
        COUNTRY_CODE_NAME_MAP.put("GA", "Gabon");
        COUNTRY_CODE_NAME_MAP.put("GM", "Gambia");
        COUNTRY_CODE_NAME_MAP.put("GE", "Georgia");
        COUNTRY_CODE_NAME_MAP.put("DE", "Germany");
        COUNTRY_CODE_NAME_MAP.put("GH", "Ghana");
        COUNTRY_CODE_NAME_MAP.put("GI", "Gibraltar");
        COUNTRY_CODE_NAME_MAP.put("GR", "Greece");
        COUNTRY_CODE_NAME_MAP.put("GL", "Greenland");
        COUNTRY_CODE_NAME_MAP.put("GD", "Grenada");
        COUNTRY_CODE_NAME_MAP.put("GP", "Guadeloupe");
        COUNTRY_CODE_NAME_MAP.put("GU", "Guam");
        COUNTRY_CODE_NAME_MAP.put("GT", "Guatemala");
        COUNTRY_CODE_NAME_MAP.put("GG", "Guernsey");
        COUNTRY_CODE_NAME_MAP.put("GN", "Guinea");
        COUNTRY_CODE_NAME_MAP.put("GW", "Guinea-Bissau");
        COUNTRY_CODE_NAME_MAP.put("GY", "Guyana");
        COUNTRY_CODE_NAME_MAP.put("HT", "Haiti");
        COUNTRY_CODE_NAME_MAP.put("HM", "Heard Island and McDonald Islands");
        COUNTRY_CODE_NAME_MAP.put("VA", "Holy See (Vatican City State)");
        COUNTRY_CODE_NAME_MAP.put("HN", "Honduras");
        COUNTRY_CODE_NAME_MAP.put("HK", "Hong Kong");
        COUNTRY_CODE_NAME_MAP.put("HU", "Hungary");
        COUNTRY_CODE_NAME_MAP.put("IS", "Iceland");
        COUNTRY_CODE_NAME_MAP.put("IN", "India");
        COUNTRY_CODE_NAME_MAP.put("ID", "Indonesia");
        COUNTRY_CODE_NAME_MAP.put("IR", "Iran, Islamic Republic of");
        COUNTRY_CODE_NAME_MAP.put("IQ", "Iraq");
        COUNTRY_CODE_NAME_MAP.put("IE", "Ireland");
        COUNTRY_CODE_NAME_MAP.put("IM", "Isle of Man");
        COUNTRY_CODE_NAME_MAP.put("IL", "Israel");
        COUNTRY_CODE_NAME_MAP.put("IT", "Italy");
        COUNTRY_CODE_NAME_MAP.put("JM", "Jamaica");
        COUNTRY_CODE_NAME_MAP.put("JP", "Japan");
        COUNTRY_CODE_NAME_MAP.put("JE", "Jersey");
        COUNTRY_CODE_NAME_MAP.put("JO", "Jordan");
        COUNTRY_CODE_NAME_MAP.put("KZ", "Kazakhstan");
        COUNTRY_CODE_NAME_MAP.put("KE", "Kenya");
        COUNTRY_CODE_NAME_MAP.put("KI", "Kiribati");
        COUNTRY_CODE_NAME_MAP.put("KP", "Korea, Democratic People's Republic of");
        COUNTRY_CODE_NAME_MAP.put("KR", "Korea, Republic of");
        COUNTRY_CODE_NAME_MAP.put("KW", "Kuwait");
        COUNTRY_CODE_NAME_MAP.put("KG", "Kyrgyzstan");
        COUNTRY_CODE_NAME_MAP.put("LA", "Lao People's Democratic Republic");
        COUNTRY_CODE_NAME_MAP.put("LV", "Latvia");
        COUNTRY_CODE_NAME_MAP.put("LB", "Lebanon");
        COUNTRY_CODE_NAME_MAP.put("LS", "Lesotho");
        COUNTRY_CODE_NAME_MAP.put("LR", "Liberia");
        COUNTRY_CODE_NAME_MAP.put("LY", "Libyan Arab Jamahiriya");
        COUNTRY_CODE_NAME_MAP.put("LI", "Liechtenstein");
        COUNTRY_CODE_NAME_MAP.put("LT", "Lithuania");
        COUNTRY_CODE_NAME_MAP.put("LU", "Luxembourg");
        COUNTRY_CODE_NAME_MAP.put("MO", "Macao");
        COUNTRY_CODE_NAME_MAP.put("MK", "Macedonia, The Former Yugoslav Republic of");
        COUNTRY_CODE_NAME_MAP.put("MG", "Madagascar");
        COUNTRY_CODE_NAME_MAP.put("MW", "Malawi");
        COUNTRY_CODE_NAME_MAP.put("MY", "Malaysia");
        COUNTRY_CODE_NAME_MAP.put("MV", "Maldives");
        COUNTRY_CODE_NAME_MAP.put("ML", "Mali");
        COUNTRY_CODE_NAME_MAP.put("MT", "Malta");
        COUNTRY_CODE_NAME_MAP.put("MH", "Marshall Islands");
        COUNTRY_CODE_NAME_MAP.put("MQ", "Martinique");
        COUNTRY_CODE_NAME_MAP.put("MR", "Mauritania");
        COUNTRY_CODE_NAME_MAP.put("MU", "Mauritius");
        COUNTRY_CODE_NAME_MAP.put("YT", "Mayotte");
        COUNTRY_CODE_NAME_MAP.put("MX", "Mexico");
        COUNTRY_CODE_NAME_MAP.put("FM", "Micronesia, Federated States of");
        COUNTRY_CODE_NAME_MAP.put("MD", "Moldova, Republic of");
        COUNTRY_CODE_NAME_MAP.put("MC", "Monaco");
        COUNTRY_CODE_NAME_MAP.put("MN", "Mongolia");
        COUNTRY_CODE_NAME_MAP.put("ME", "Montenegro");
        COUNTRY_CODE_NAME_MAP.put("MA", "Morocco");
        COUNTRY_CODE_NAME_MAP.put("MZ", "Mozambique");
        COUNTRY_CODE_NAME_MAP.put("MM", "Myanmar");
        COUNTRY_CODE_NAME_MAP.put("NA", "Namibia");
        COUNTRY_CODE_NAME_MAP.put("NR", "Nauru");
        COUNTRY_CODE_NAME_MAP.put("NP", "Nepal");
        COUNTRY_CODE_NAME_MAP.put("NL", "Netherlands");
        COUNTRY_CODE_NAME_MAP.put("NC", "New Caledonia");
        COUNTRY_CODE_NAME_MAP.put("NZ", "New Zealand");
        COUNTRY_CODE_NAME_MAP.put("NI", "Nicaragua");
        COUNTRY_CODE_NAME_MAP.put("NE", "Niger");
        COUNTRY_CODE_NAME_MAP.put("NG", "Nigeria");
        COUNTRY_CODE_NAME_MAP.put("NU", "Niue");
        COUNTRY_CODE_NAME_MAP.put("NF", "Norfolk Island");
        COUNTRY_CODE_NAME_MAP.put("MP", "Northern Mariana Islands");
        COUNTRY_CODE_NAME_MAP.put("NO", "Norway");
        COUNTRY_CODE_NAME_MAP.put("PS", "Occupied Palestinian Territory");
        COUNTRY_CODE_NAME_MAP.put("OM", "Oman");
        COUNTRY_CODE_NAME_MAP.put("PK", "Pakistan");
        COUNTRY_CODE_NAME_MAP.put("PW", "Palau");
        COUNTRY_CODE_NAME_MAP.put("PA", "Panama");
        COUNTRY_CODE_NAME_MAP.put("PG", "Papua New Guinea");
        COUNTRY_CODE_NAME_MAP.put("PY", "Paraguay");
        COUNTRY_CODE_NAME_MAP.put("PE", "Peru");
        COUNTRY_CODE_NAME_MAP.put("PH", "Philippines");
        COUNTRY_CODE_NAME_MAP.put("PN", "Pitcairn");
        COUNTRY_CODE_NAME_MAP.put("PL", "Poland");
        COUNTRY_CODE_NAME_MAP.put("PT", "Portugal");
        COUNTRY_CODE_NAME_MAP.put("PR", "Puerto Rico");
        COUNTRY_CODE_NAME_MAP.put("QA", "Qatar");
        COUNTRY_CODE_NAME_MAP.put("RE", "Reunion");
        COUNTRY_CODE_NAME_MAP.put("RO", "Romania");
        COUNTRY_CODE_NAME_MAP.put("RU", "Russian Federation");
        COUNTRY_CODE_NAME_MAP.put("RW", "Rwanda");
        COUNTRY_CODE_NAME_MAP.put("BL", "Saint Barthelemy");
        COUNTRY_CODE_NAME_MAP.put("SH", "Saint Helena, Ascension and Tristan da Cunha");
        COUNTRY_CODE_NAME_MAP.put("KN", "Saint Kitts and Nevis");
        COUNTRY_CODE_NAME_MAP.put("LC", "Saint Lucia");
        COUNTRY_CODE_NAME_MAP.put("MF", "Saint Martin (French part)");
        COUNTRY_CODE_NAME_MAP.put("PM", "Saint Pierre and Miquelon");
        COUNTRY_CODE_NAME_MAP.put("VC", "Saint Vincent and The Grenadines");
        COUNTRY_CODE_NAME_MAP.put("WS", "Samoa");
        COUNTRY_CODE_NAME_MAP.put("SM", "San Marino");
        COUNTRY_CODE_NAME_MAP.put("ST", "Sao Tome and Principe");
        COUNTRY_CODE_NAME_MAP.put("SA", "Saudi Arabia");
        COUNTRY_CODE_NAME_MAP.put("SN", "Senegal");
        COUNTRY_CODE_NAME_MAP.put("RS", "Serbia");
        COUNTRY_CODE_NAME_MAP.put("SC", "Seychelles");
        COUNTRY_CODE_NAME_MAP.put("SL", "Sierra Leone");
        COUNTRY_CODE_NAME_MAP.put("SG", "Singapore");
        COUNTRY_CODE_NAME_MAP.put("SX", "Sint Maarten (Dutch part)");
        COUNTRY_CODE_NAME_MAP.put("SK", "Slovakia");
        COUNTRY_CODE_NAME_MAP.put("SI", "Slovenia");
        COUNTRY_CODE_NAME_MAP.put("SB", "Solomon Islands");
        COUNTRY_CODE_NAME_MAP.put("SO", "Somalia");
        COUNTRY_CODE_NAME_MAP.put("ZA", "South Africa");
        COUNTRY_CODE_NAME_MAP.put("GS", "South Georgia and the South Sandwich Islands");
        COUNTRY_CODE_NAME_MAP.put("ES", "Spain");
        COUNTRY_CODE_NAME_MAP.put("LK", "Sri Lanka");
        COUNTRY_CODE_NAME_MAP.put("SD", "Sudan");
        COUNTRY_CODE_NAME_MAP.put("SR", "Suriname");
        COUNTRY_CODE_NAME_MAP.put("SJ", "Svalbard and Jan Mayen");
        COUNTRY_CODE_NAME_MAP.put("SZ", "Swaziland");
        COUNTRY_CODE_NAME_MAP.put("SE", "Sweden");
        COUNTRY_CODE_NAME_MAP.put("CH", "Switzerland");
        COUNTRY_CODE_NAME_MAP.put("SY", "Syrian Arab Republic");
        COUNTRY_CODE_NAME_MAP.put("TW", "Taiwan, Province of China");
        COUNTRY_CODE_NAME_MAP.put("TJ", "Tajikistan");
        COUNTRY_CODE_NAME_MAP.put("TZ", "Tanzania, United Republic of");
        COUNTRY_CODE_NAME_MAP.put("TH", "Thailand");
        COUNTRY_CODE_NAME_MAP.put("TL", "Timor-Leste");
        COUNTRY_CODE_NAME_MAP.put("TG", "Togo");
        COUNTRY_CODE_NAME_MAP.put("TK", "Tokelau");
        COUNTRY_CODE_NAME_MAP.put("TO", "Tonga");
        COUNTRY_CODE_NAME_MAP.put("TT", "Trinidad and Tobago");
        COUNTRY_CODE_NAME_MAP.put("TN", "Tunisia");
        COUNTRY_CODE_NAME_MAP.put("TR", "Turkey");
        COUNTRY_CODE_NAME_MAP.put("TM", "Turkmenistan");
        COUNTRY_CODE_NAME_MAP.put("TC", "Turks and Caicos Islands");
        COUNTRY_CODE_NAME_MAP.put("TV", "Tuvalu");
        COUNTRY_CODE_NAME_MAP.put("UG", "Uganda");
        COUNTRY_CODE_NAME_MAP.put("UA", "Ukraine");
        COUNTRY_CODE_NAME_MAP.put("AE", "United Arab Emirates");
        COUNTRY_CODE_NAME_MAP.put("GB", "United Kingdom");
        COUNTRY_CODE_NAME_MAP.put("US", "United States");
        COUNTRY_CODE_NAME_MAP.put("UM", "United States Minor Outlying Islands");
        COUNTRY_CODE_NAME_MAP.put("UY", "Uruguay");
        COUNTRY_CODE_NAME_MAP.put("UZ", "Uzbekistan");
        COUNTRY_CODE_NAME_MAP.put("VU", "Vanuatu");
        COUNTRY_CODE_NAME_MAP.put("VE", "Venezuela, Bolivarian Republic of");
        COUNTRY_CODE_NAME_MAP.put("VN", "Viet Nam");
        COUNTRY_CODE_NAME_MAP.put("VG", "Virgin Islands, British");
        COUNTRY_CODE_NAME_MAP.put("VI", "Virgin Islands, U.S.");
        COUNTRY_CODE_NAME_MAP.put("WF", "Wallis and Futuna");
        COUNTRY_CODE_NAME_MAP.put("EH", "Western Sahara");
        COUNTRY_CODE_NAME_MAP.put("YE", "Yemen");
        COUNTRY_CODE_NAME_MAP.put("ZM", "Zambia");
        COUNTRY_CODE_NAME_MAP.put("ZW", "Zimbabwe");
    }

    public static enum LocationSignalStatus
    {
        OK(0, "Location fetched successfully."),  UNKNOWN(1, "Unknown error has occurred."),  LOCATION_SENSOR_UNAVAILABLE(2, "Location sensor is not available."),  LOCATION_SERVICES_NOT_INSTALLED(3, "Location services not installed."),  LOCATION_SIGNAL_UNAVAILABLE(4, "Location signal is not available."),  NO_APP_PERMISSION(5, "Permission denied for location signal.");

        private final int code;
        private final String description;

        private LocationSignalStatus(int code, String description)
        {
            this.code = code;
            this.description = description;
        }

        public String getDescription()
        {
            return this.description;
        }

        public int getCode()
        {
            return this.code;
        }
    }
}

